package cn.edu.zafu.bigdata.YinMingyan.chapter05;

// 尝试创建一个 final 类，并观察该类是否能被继承
final class FinalClass {

}

// 尝试继承 FinalClass 类，将会导致编译错误，因为 FinalClass 是 final 的
//class TestFinalClass extends FinalClass {
//     //编译错误：FinalClass 是 final 的，不能被继承
//}

// 尝试创建一个 final 方法，并观察该方法是否能被子类重写
class ParentClass {
    public final void rewrite() {
        System.out.println("ParentClass rewrite()");
    }
}

// 子类尝试重写 ParentClass 的 rewrite() 方法，将会导致编译错误，因为 rewrite() 是 final 的
class ChildClass extends ParentClass {
    //@Override
    //public void rewrite() {
        // 编译错误：不能覆盖 final 方法 ParentClass.rewrite()
    //}
}

// 使用 final 关键字修饰一个变量，观察该变量的行为是否可以被修改
class FinalVariableDemo {
    public final int value = 5;

    public void modifyValue() {
//        value = 10; // 编译错误：不能为 final 变量 value 分配值
 }
}


